#ifndef MINI_ENGINE_INSTANCEA
#define MINI_ENGINE_INSTANCEA
#include <iostream>
using namespace std;
#include <vector>
#include <GLFW/glfw3.h>
#include <vulkan/vulkan.h>

const std::vector<const char *> validationLayers = {
    "VK_LAYER_KHRONOS_validation"};

namespace mini_engine
{
    class Instance
    {
    private:
        Instance();
        static Instance *m_instnce;
        vector<const char *> getRequiredExtensions();
        class InstanceDestruction
        {
        public:
            ~InstanceDestruction();
        };

    public:
        static VkInstance instance;
        static Instance *getInstance(); // 获取实例
        static void createInstance();
        ~Instance();
    };
}

#endif